package web.suzy.oj.pojo.vo;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

/**
 * YangSuzy 软件工作室
 * 类名: ConfigVO
 * 描述: 配置视图对象
 * 功能: VO (View Object)用于表示一个与前端进行交互的视图对象
 *
 * @author YangSuzy
 * Date: 2022/11/17 18:07
 */
@RefreshScope //实例热加载
@Data
@Component
public class ConfigVO {
    /**
     * 数据库配置
     */
    @Value("${suzyoj.db.username}")
    private String mysqlUsername;

    @Value("${suzyoj.db.password}")
    private String mysqlPassword;

    @Value("${suzyoj.db.name}")
    private String mysqlDBName;

    @Value("${suzyoj.db.host}")
    private String mysqlHost;

    @Value("${suzyoj.db.public-host:127.0.0.1}")
    private String mysqlPublicHost;

    @Value("${suzyoj.db.port}")
    private Integer mysqlPort;

    @Value("${suzyoj.db.public-port:3306}")
    private Integer mysqlPublicPort;

    /**
     * 判题服务token
     */
    @Value("${suzyoj.judge.token}")
    private String judgeToken;

    /**
     * 缓存配置
     */
    @Value("${suzyoj.redis.host}")
    private String redisHost;

    @Value("${suzyoj.redis.port}")
    private Integer redisPort;

    @Value("${suzyoj.redis.password}")
    private String redisPassword;

    /**
     * jwt配置
     */
    @Value("${suzyoj.jwt.secret}")
    private String tokenSecret;

    @Value("${suzyoj.jwt.expire}")
    private String tokenExpire;

    @Value("${suzyoj.jwt.checkRefreshExpire}")
    private String checkRefreshExpire;
}
